package io;

import java.io.*;

/**
 * 在流连接中创建PrintWriter
 */
public class PWDemo2 {
    public static void main(String[] args) throws FileNotFoundException {
        /*
            文件输出流:字节流，低级流
            作用:实际连接程序与硬盘上指定文件的管道
                负责将字节写入到该文件中
         */
        FileOutputStream fos = new FileOutputStream("pw2.txt");
        /*
            字节输出流的超类:java.io.OutputStream
            字符输出流的超类:java.io.Writer
            转换流使用了两个超类的名字作为他的名字寓意就是可以将字节输出流转为字符输出流

            转换流:高级流，字符流
            作用:
                1:衔接字节流与字符流，起到转换器的作用(类比:现实中的HDMI转VGA设备)
                2:负责将上层字符流写出的所有字符转换为字节再交给下面的字节流写出
         */
        OutputStreamWriter osw = new OutputStreamWriter(fos);
        /*
            缓冲字符输出流:字符流，高级流
            作用:内部默认有一个8192长的char数组，可以统一将写出的字符缓存并以
                块写形式保证写出效率
         */
        BufferedWriter bw = new BufferedWriter(osw);
        /*
            PrintWriter:字符流，高级流
            作用:可以按行写出字符串，并且具有自动行刷新功能
         */
        PrintWriter pw = new PrintWriter(bw);

        pw.println("你好");
        pw.println("再见");

        System.out.println("写出完毕");
        pw.close();

    }
}
